<?php

/**
 * User: rongxia
 * Date: 2018/08/07
 * Time: 23:42
 */

namespace App\Services\ThirdAPI;



use common\enum\CommonEnum;
use common\utils\RedisKeys;
//use App\Models\Order;
use App\Models\Game;
use App\Models\Partner;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redis;
use common\utils\SysCode;

class OGAPIService {

    protected $apiName = 'OG';

    /**
     * 代理商获取玩家游戏下注数据或总社获取玩家游戏下注日志   OK
     * @param int $startTime 抓取时间段的开始时间
     * @param int $endTime 抓取时间段的结束时间
     * @return string|unknown
     */
    public function getOGOrders($startTime, $endTime) {
        Log::info("OG 获取注单：" . date("Y-m-d H:i:s", $startTime) . " - " . date("Y-m-d H:i:s", $endTime));
        $retValue = [];
        $bet = $this->getBetLog($startTime, $endTime);
        if (is_array($bet)&& count($bet)) {
            $retValue = array_merge($retValue, $bet);
        } else {
            Log::info("OG 暂无可更新数据");
        }
        return $retValue;
    }



    /**
     * 获取用户投注记录
     * @param string $starttime 开始时间(时间戳)
     * @param string $endtime 开始时间(时间戳)
     * @return
     */
    public function getBetLog($starttime, $endtime) {
        $result = [];
        $data=[
            'api_name' => $this->apiName,
            'start_time' => $starttime+3600*4,//因为接口限制，开始时间和结束时间必须大于一分钟，接口数据延迟十分钟左右，查询往前十分钟
            'end_time' => $endtime+3600*4,
//            'start_time' => 1514858400,//测试用数据
//            'end_time' => 1514859000,//测试用数据
        ];
        $url = config('app.rpcserver') . "/api/getOrders";
        Log::info("OG 请求接口 url: {$url},开始时间：".date("Y-m-d H:i:s",$data['start_time'])."结束时间：".date("Y-m-d H:i:s",$data['end_time']).", data: " . json_encode($data));
        $response = GameApiService::request($url, 'get', $data);
        if(is_array($response)){
            $result =array_merge($result, $response);
        }

        $msg="OG 获取注单抓取接口请求url:====" . $url . "请求参数:======" . json_encode($data, JSON_UNESCAPED_UNICODE) . "请求时间:====" . date("Y-m-d H:i:s") . "总共有" . count($result) . "条数据";
        Log::info($msg);
        amount_format_array($result,['bet_money','winloss_money','prize_money','valid_money','contribute_money','bonus_money'],true);
        return $result;
    }
}
